/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package dao.usuario;

import dao.jpa.JPADao;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import modelo.Usuario;

/**
 *
 * @author Thuan
 */
public class JPAUsuarioDao extends JPADao<Usuario> implements UsuarioDao{
    
    @Override
    public Class<Usuario> classEntidade() {
        return Usuario.class;
    }

    public Usuario buscarPorEmail(String email) {
        EntityManager em = jpaUtil.createEM();
        Usuario usu = null;
        List<Usuario> lista = null;
        try{
            Query consulta = em.createQuery("Select u from Usuario u " + "where u.email = :email ");
            consulta.setParameter("email", email);
            usu = (Usuario) consulta.getResultList();
        }finally{
            em.close();
        }
        return usu;
    }
    
    public List<Usuario> buscarPorLogados() {
        EntityManager em = jpaUtil.createEM();
        Usuario usu = null;
        List<Usuario> lista = null;
        try{
            Query consulta = em.createQuery("Select u from Usuario u ");
            lista = consulta.getResultList();
        }finally{
            em.close();
        }
        return lista;
    }
    
    public List<Usuario> buscarPorRanking() {
        EntityManager em = jpaUtil.createEM();
        Usuario usu = null;
        List<Usuario> lista = null;
        try{
            Query consulta = em.createQuery("Select u from Usuario u order by u.pontuacao desc");
            lista = consulta.getResultList();
        }finally{
            em.close();
        }
        return lista;
    }
    
}
